package com.portal.entities;

import java.util.Calendar;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="EMPRESA", schema="PROTESTO")
public class Empresa {

	@Id
	@Column(name="CD_EMPRESA")
	private Long id;

	@Column(name="CD_EMPRESA_CLIENTE")
	private Long idEmpresaCliente;

	@Column(name="NM_EMPRESA")
	private String nomeEmpresa;

	@Column(name="DT_CADASTRO")
	private Calendar dataCadastro;

	@Column(name="IC_EXCLUIDO")
	private Boolean excluido;

	@Column(name="DT_EXCLUIDO")
	private Calendar dataExclusao;

	@Column(name="IC_ATIVO")
	private Boolean ativo;

	@Column(name="CD_EMPRESA_TIPO")
	private Long tipoEmpresa;

	@Column(name="NR_NIVEL")
	private Long nivel;

	@Column(name="CD_FILIAL_CLIENTE")
	private Long idFilialCliente;

	@Column(name="CD_USUARIO_CADASTRO")
	private Long idUsuarioCadastro;

	@Column(name="CD_USUARIO_EXCLUIDO")
	private Long idUsuarioExclusao;

	@Column(name="CD_EMPRESA_PERTENCE")
	private Long idEmpresaPertence;

	@Column(name="CD_DOCUMENTO")
	private String codigoDocumento;

	@Column(name="DT_ALTERACAO")
	private Calendar dataAlteracao;

	@Column(name="CD_USUARIO_ALTERACAO")
	private Long idUsuarioAlteracao;

	@Column(name="NR_CNPJ")
	private Long cnpj;

	@Column(name="NM_ENDERECO")
	private String endereco;

	@Column(name="NM_BAIRRO")
	private String bairro;

	@Column(name="NM_CIDADE")
	private String cidade;

	@Column(name="SG_UF")
	private String UF;

	@Column(name="NR_CEP")
	private Long CEP;

	@Column(name="NM_BANCO")
	private String nomeBanco;

	@Column(name="NM_AGENCIA")
	private String nomeAgencia;

	@Column(name="NM_CONTA")
	private String nomeConta;

	@Column(name="NM_BASEPDF")
	private String basePDF;

	@Column(name="NM_TABELACONTRATO")
	private String nomeTabelaContrato;

	@Column(name="NM_CAMPOTIPODOC")
	private String nomeCampoTipoDocumento;

	@Column(name="NM_CAMPOCAMINHOARQUIVO")
	private String nomeCampoCaminhoArquivo;

	@Column(name="NM_CAMPONOMEARQUIVO")
	private String nomeCampoNomeArquivo;

	@Column(name="NM_CAMPOCONTRATOCLIENTE")
	private String nomeCampoContratoCliente;

	@Column(name="NM_CONDICAOCONTRATOCLIENTE")
	private String nomeCondicaoContratoCliente;

	@Column(name="NM_CAMINHOINICIAL")
	private String nomeCaminhoInicial;

	@Column(name="NM_BASECLIENTE")
	private String nomeBaseCliente;

	@Column(name="ID_FATURA_PROGEST")
	private Long idFaturaProgest;

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public Long getIdEmpresaCliente() {
		return idEmpresaCliente;
	}

	public void setIdEmpresaCliente(Long idEmpresaCliente) {
		this.idEmpresaCliente = idEmpresaCliente;
	}

	public String getNomeEmpresa() {
		return nomeEmpresa;
	}

	public void setNomeEmpresa(String nomeEmpresa) {
		this.nomeEmpresa = nomeEmpresa;
	}

	public Calendar getDataCadastro() {
		return dataCadastro;
	}

	public void setDataCadastro(Calendar dataCadastro) {
		this.dataCadastro = dataCadastro;
	}

	public Boolean getExcluido() {
		return excluido;
	}

	public void setExcluido(Boolean excluido) {
		this.excluido = excluido;
	}

	public Calendar getDataExclusao() {
		return dataExclusao;
	}

	public void setDataExclusao(Calendar dataExclusao) {
		this.dataExclusao = dataExclusao;
	}

	public Boolean getAtivo() {
		return ativo;
	}

	public void setAtivo(Boolean ativo) {
		this.ativo = ativo;
	}

	public Long getTipoEmpresa() {
		return tipoEmpresa;
	}

	public void setTipoEmpresa(Long tipoEmpresa) {
		this.tipoEmpresa = tipoEmpresa;
	}

	public Long getNivel() {
		return nivel;
	}

	public void setNivel(Long nivel) {
		this.nivel = nivel;
	}

	public Long getIdFilialCliente() {
		return idFilialCliente;
	}

	public void setIdFilialCliente(Long idFilialCliente) {
		this.idFilialCliente = idFilialCliente;
	}

	public Long getIdUsuarioCadastro() {
		return idUsuarioCadastro;
	}

	public void setIdUsuarioCadastro(Long idUsuarioCadastro) {
		this.idUsuarioCadastro = idUsuarioCadastro;
	}

	public Long getIdUsuarioExclusao() {
		return idUsuarioExclusao;
	}

	public void setIdUsuarioExclusao(Long idUsuarioExclusao) {
		this.idUsuarioExclusao = idUsuarioExclusao;
	}

	public Long getIdEmpresaPertence() {
		return idEmpresaPertence;
	}

	public void setIdEmpresaPertence(Long idEmpresaPertence) {
		this.idEmpresaPertence = idEmpresaPertence;
	}

	public String getIdDocumento() {
		return codigoDocumento;
	}

	public void setIdDocumento(String idDocumento) {
		this.codigoDocumento = idDocumento;
	}

	public Calendar getDataAlteracao() {
		return dataAlteracao;
	}

	public void setDataAlteracao(Calendar dataAlteracao) {
		this.dataAlteracao = dataAlteracao;
	}

	public Long getIdUsuarioAlteracao() {
		return idUsuarioAlteracao;
	}

	public void setIdUsuarioAlteracao(Long idUsuarioAlteracao) {
		this.idUsuarioAlteracao = idUsuarioAlteracao;
	}

	public Long getCnpj() {
		return cnpj;
	}

	public void setCnpj(Long cnpj) {
		this.cnpj = cnpj;
	}

	public String getEndereco() {
		return endereco;
	}

	public void setEndereco(String endereco) {
		this.endereco = endereco;
	}

	public String getBairro() {
		return bairro;
	}

	public void setBairro(String bairro) {
		this.bairro = bairro;
	}

	public String getCidade() {
		return cidade;
	}

	public void setCidade(String cidade) {
		this.cidade = cidade;
	}

	public String getUF() {
		return UF;
	}

	public void setUF(String uF) {
		UF = uF;
	}

	public Long getCEP() {
		return CEP;
	}

	public void setCEP(Long cEP) {
		CEP = cEP;
	}

	public String getNomeBanco() {
		return nomeBanco;
	}

	public void setNomeBanco(String nomeBanco) {
		this.nomeBanco = nomeBanco;
	}

	public String getNomeAgencia() {
		return nomeAgencia;
	}

	public void setNomeAgencia(String nomeAgencia) {
		this.nomeAgencia = nomeAgencia;
	}

	public String getNomeConta() {
		return nomeConta;
	}

	public void setNomeConta(String nomeConta) {
		this.nomeConta = nomeConta;
	}

	public String getBasePDF() {
		return basePDF;
	}

	public void setBasePDF(String basePDF) {
		this.basePDF = basePDF;
	}

	public String getNomeTabelaContrato() {
		return nomeTabelaContrato;
	}

	public void setNomeTabelaContrato(String nomeTabelaContrato) {
		this.nomeTabelaContrato = nomeTabelaContrato;
	}

	public String getNomeCampoTipoDocumento() {
		return nomeCampoTipoDocumento;
	}

	public void setNomeCampoTipoDocumento(String nomeCampoTipoDocumento) {
		this.nomeCampoTipoDocumento = nomeCampoTipoDocumento;
	}

	public String getNomeCampoCaminhoArquivo() {
		return nomeCampoCaminhoArquivo;
	}

	public void setNomeCampoCaminhoArquivo(String nomeCampoCaminhoArquivo) {
		this.nomeCampoCaminhoArquivo = nomeCampoCaminhoArquivo;
	}

	public String getNomeCampoNomeArquivo() {
		return nomeCampoNomeArquivo;
	}

	public void setNomeCampoNomeArquivo(String nomeCampoNomeArquivo) {
		this.nomeCampoNomeArquivo = nomeCampoNomeArquivo;
	}

	public String getNomeCampoContratoCliente() {
		return nomeCampoContratoCliente;
	}

	public void setNomeCampoContratoCliente(String nomeCampoContratoCliente) {
		this.nomeCampoContratoCliente = nomeCampoContratoCliente;
	}

	public String getNomeCondicaoContratoCliente() {
		return nomeCondicaoContratoCliente;
	}

	public void setNomeCondicaoContratoCliente(String nomeCondicaoContratoCliente) {
		this.nomeCondicaoContratoCliente = nomeCondicaoContratoCliente;
	}

	public String getNomeCaminhoInicial() {
		return nomeCaminhoInicial;
	}

	public void setNomeCaminhoInicial(String nomeCaminhoInicial) {
		this.nomeCaminhoInicial = nomeCaminhoInicial;
	}

	public String getNomeBaseCliente() {
		return nomeBaseCliente;
	}

	public void setNomeBaseCliente(String nomeBaseCliente) {
		this.nomeBaseCliente = nomeBaseCliente;
	}

	public Long getIdFaturaProgest() {
		return idFaturaProgest;
	}

	public void setIdFaturaProgest(Long idFaturaProgest) {
		this.idFaturaProgest = idFaturaProgest;
	}

	@Override
	public boolean equals(Object obj) {
		boolean retorno = false;
		if(obj instanceof Empresa && this.getId() != null && ((Empresa)obj).getId() != null){
			retorno = this.getId().equals(((Empresa)obj).getId());
		}
		return retorno;
	}

	//	@Override
	//	public String toString(){
	//		String retorno = "null";
	//		if(nomeEmpresa != null){
	//			retorno = nomeEmpresa;
	//		}
	//		return retorno;
	//	}

}
